package cn.heyige.backend.service;

import cn.heyige.backend.entity.YaoCiDO;

import java.util.List;
import java.util.Optional;

public interface YaoCiService {
    
    /**
     * 根据ID获取爻辞
     * @param id 爻辞ID
     * @return 爻辞对象
     */
    Optional<YaoCiDO> getYaoCiById(Integer id);
    
    /**
     * 根据卦象ID获取所有爻辞
     * @param hexagramId 卦象ID
     * @return 爻辞列表
     */
    List<YaoCiDO> getYaoCiByHexagramId(Integer hexagramId);
    
    /**
     * 根据卦象ID和爻位获取特定爻辞
     * @param hexagramId 卦象ID
     * @param yaoPosition 爻位（1-6）
     * @return 爻辞对象
     */
    YaoCiDO getYaoCiByHexagramIdAndPosition(Integer hexagramId, Integer yaoPosition);
    
    /**
     * 获取所有爻辞
     * @return 爻辞列表
     */
    List<YaoCiDO> getAllYaoCi();
    
    /**
     * 保存爻辞
     * @param yaoCi 爻辞对象
     * @return 保存后的爻辞对象
     */
    YaoCiDO saveYaoCi(YaoCiDO yaoCi);
    
    /**
     * 更新爻辞
     * @param yaoCi 爻辞对象
     * @return 更新后的爻辞对象
     */
    YaoCiDO updateYaoCi(YaoCiDO yaoCi);
    
    /**
     * 删除爻辞
     * @param id 爻辞ID
     * @return 是否删除成功
     */
    boolean deleteYaoCi(Integer id);
}